
//我的收藏
function myCollection(obj){
    //表示已经收藏
    if($(obj).hasClass("collection")){
        $(obj).html("&#xe637;").removeClass("collection");
    }else{
        $(obj).html("&#xe621;").addClass("collection");
    }
}

//页面跳转转到target属性指明的链接，obj代表控件this
function jumpTo(obj){
    var _href = obj.getAttribute("target");
    window.location.href = _href;
}

//获取屏幕尺寸
function getScreenWidth(){
    return document.documentElement.clientWidth;
}

//获取屏幕尺寸
function getScreenHeight(){
    return document.documentElement.clientHeight;
}

//只允许输入数字,obj为控件对象，event为触发的事件
function numberInputOnly(obj,event){
    if(obj.value.length==1){
        obj.value=obj.value.replace(/[^1-9]/g,'');
    }else{
        obj.value=obj.value.replace(/\D/g,'');
    }
}


/*****下拉导航左右定格****/
function order_menu_caret(){
    var obj = $("#order_menu_caret");
    var w = $(window).width();
    var left_right = w - obj.width();
    var lr = left_right/2;
    obj.css("left",-lr);
    obj.css("width",w);
}

var SQH=function(domObj){

    sqhSwip={
        startX : 0,
        startY : 0,
        touchSatrtFunc : function(evt) {
            try
            {
                //evt.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等
                var touch = evt.touches[0]; //获取第一个触点
                //记录触点初始位置
                this.startX = Number(touch.pageX); //页面触点X坐标
                this.startY = Number(touch.pageY); //页面触点Y坐标
            }
            catch (e) {
            }
        },
        touchMoveFunc : function(event){
            //event.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等
            var touch = event.touches[0]; //获取第一个触点
            var endX = Number(touch.pageX); //页面触点X坐标
            var endY = Number(touch.pageY); //页面触点Y坐标
            if(endX > this.startX){
                $("#carousel-generic").carousel('prev');
            }else{
                $("#carousel-generic").carousel('next');
            }

            if((endY - this.startY) < 500){
                $("body").one("touchmove", function(event){
                    event.preventDefault();
                });
            }else{
            }
        },
        each : function(obj){
            var currentObj = this;
            $(obj).each(function(i){
                this.addEventListener('touchstart', currentObj.touchSatrtFunc, false);
                this.addEventListener('touchmove', currentObj.touchMoveFunc, false);
            });
        }
    };
    sqhSwip.each(domObj);
};

//添加弹出提示信息，之后就自动消失
function sqh_tips(mysetting){
    var timestamp = new Date().getTime();
    var setting = {
        //将时间戳作为一个id传递
        target : timestamp,
        //提示的内容
        content : "弹出提示内容",
        //指明弹出窗口的内容
        width : "200px",
        //显示的时间
        persistent : 1000,
        //默认透明度是0.5，可以自己调节透明度
        bgopacity:0,
        contentOpacity:0.8,
        fontColor:"#ffffff",
        background:"black",
        fontSize : "14px",
        //显示回调函数
        beforeShow : function(obj){
//                alert(obj.outerHTML);
            //删除添加的节点
            $(obj).remove();
        },
        //退出的时间
        hide:300
    };

    //获取用户的配置文件
    setting = $.extend(setting,mysetting);

    function addHtml(setting){
        var contentHtml ='<div id="'+setting.target+'">'+
            '<div style="position: fixed;top:30%;width: 100%;z-index:1050;" id="__dialog_div">'+
            '<div style="position: relative;width: '+setting.width+';margin:0px auto;" onclick="remove()" >'+
            '<div class="alert alert-info" style="font-size:'+setting.fontSize+'; opacity: '+setting.contentOpacity+';color:'+setting.fontColor+';background: '+setting.background+';border-color: '+setting.background+';">'+
            setting.content+
            '</div>'+
            '</div>'+
            '</div>'+
            '<div class="modal-backdrop fade in" id="__zhezhao" style="opacity: '+setting.bgopacity+';"></div>'+
            '</div>';
        //将遮罩效果代码添加到body标签中
        $("body").append(contentHtml);
        //让弹出内容有进入 和 退出的效果
        $("#"+setting.target).show().delay(setting.persistent).hide(setting.hide,function(){
            setting.beforeShow(this);
        });
    }

    //如果传递的参数不正确，则
    if(typeof setting != "object"){
        setting.content = "参数传递有误";
    }

    //添加代码，弹出效果
    addHtml(setting);
}


/*
 //    如果使用new ，则方法内部的this则是当前对象，如果是直接使用groupBtnInit()，则this代表的是window对象
 new groupBtnInit({
 targetId : "",
 groupBtnWidth : "90px",
 groupBtnStyle:"width:90px;position:absolute;top:5px;right:0px;",
 inputStyle:"height:25px;dispaly:table-cell;",
 minusBtnClass:"clear_border_radius clear_padding",
 minusBtnStyle:"height:25px;width:25px;",
 pluseBtnClass:"clear_border_radius clear_padding",
 pluseBtnStyle:"height:25px;width:25px;",
 afterMinuseFunc:function(obj,pluginObj){
 //获取值
 //alert(obj.getInputValue());
 //获取另一个按钮对象
 //alert(obj.getOtherBtn().outerHTML);
 //                alert(3);
 //                obj.getOtherBtn().click();
 }
 });

 <div class="input-group ">
 <div class="input-group-btn">
 <button type="button" class="btn btn-default padding_6px minus_btn">
 <span  class="glyphicon glyphicon-minus"></span>
 </button>
 </div>
 <input type="text" value="0"  class="form-control text-center"  readonly>
 <div class="input-group-btn">
 <button type="button" class="btn btn-default padding_6px plus_btn">
 <span  class="glyphicon glyphicon-plus"></span>
 </button>
 </div>
 </div>
 */

//按钮组加、减的办法
function groupBtnInit(userSetting){

    //如果用户没有传递参数，则使用默认参数
    userSetting = userSetting || {};

    var that = this;
//        //缓存插件对象
//        var pluginObj = this;

    this.setting ={
        //按钮组所在的父控件ID
        targetId : "groupBtn",
        //按钮组的宽度
        groupBtnWidth :" 100px",
        //设置按钮组的类样式
        groupBtnClass:"",
        //设置按钮组的行内样式
        groupBtnStyle:"",
        //左按钮类样式
        minusBtnClass : "",
        //左按钮行内样式
        minusBtnStyle : "",
        //右按钮类样式
        pluseBtnClass : "",
        //右按钮行内样式
        pluseBtnStyle : "",
        //输入值类样式
        inputClass : "text-center",
        //输入行内样式
        inputStyle : "",
        //设置允许的最大值
        maxValue : Number.MAX_VALUE,
        //设置允许的最小值
        minValue : 1,

        //加按钮调用之前,pluginObj代表当前运行的对象，obj代表按钮对象
        beforePlusFunc : function(obj,pluginObj){
//            alert("beforePlusFunc");
        },
        //加按钮调用之前,pluginObj代表当前运行的对象，obj代表按钮对象
        beforeMinuseFunc: function(obj,pluginObj){
//            alert("beforeMinuseFunc");
        },
        //加按钮调用之前,pluginObj代表当前运行的对象，obj代表按钮对象
        afterPlusFunc:function(obj,pluginObj){
//            alert("afterPlusFunc");
        },
        //加按钮调用之前,pluginObj代表当前运行的对象，obj代表按钮对象
        afterMinuseFunc:function(obj,pluginObj){
//            alert("afterMinuseFunc");
        }
    };

    //获取用户的配置文件，覆盖默认设置
    this.setting = $.extend(this.setting,userSetting);

    //初始化参数
    this.checkParam=function(){
        var settingObj = that.setting;
        //如果用户没有设置targetId的值，则设置targetId的值为doucument
        if(userSetting.targetId == undefined || userSetting.targetId == ""){
            settingObj.targetId = document;
        }else{
            settingObj.targetId = "#"+settingObj.targetId;
        }
    }

    //检查参数
    this.checkParam();

    //缓存上下文
    this.context = $(this.setting.targetId);

    //设置按钮组的宽度,参数groupWidth是字符串，例如500px;
    this.setGroupWidth = function(groupWidth){
        $("div.input-group",that.context).css("width",groupWidth);
    }
    //设置按钮组的类样式
    this.setGroupBtnClass = function(groupBtnClass){
        $("div.input-group",that.context).addClass(groupBtnClass);
    }

    //设置按钮组的行内样式
    this.setGroupBtnStyle = function(groupBtnStyle){
        if("" == groupBtnStyle || undefined == groupBtnStyle){
            that.setGroupWidth(that.setting.groupBtnWidth);
        }else{
            $("div.input-group",that.context).attr("style",groupBtnStyle);
        }
    }

    //设置“所有”输入框的input类样式
    this.setInputClass = function(inputClass){
        $("div.input-group input.form-control",that.context).addClass(inputClass);
    }

    //设置“所有”输入框的行内样式
    this.setInputStyle = function(styleStr){
        $("div.input-group input.form-control",that.context).attr("style",styleStr);
    }

    //设置“所有”加按钮类样式
    this.setPluseBtnClass = function(pluseBtnClass){
        $("div.input-group button.plus_btn",that.context).addClass(pluseBtnClass);
    }

    //设置“所有”加按钮类样式
    this.setPluseBtnStyle = function(pluseBtnStyle){
        $("div.input-group button.plus_btn",that.context).attr("style",pluseBtnStyle);
    }

    //设置“所有”减按钮类样式
    this.setMinusBtnClass = function(minusBtnClass){
        $("div.input-group button.minus_btn",that.context).addClass(minusBtnClass);
    }

    //设置“所有”减按钮类样式
    this.setMinusBtnStyle = function(minusBtnStyle){
        $("div.input-group button.minus_btn",that.context).attr("style",minusBtnStyle);
    }

    //检查数据是否正常,如果正常返回数字，如果不正常，返回false
    this.checkGoodsNubmer = function(number){
        var numbers = parseInt(number);
        var result = numbers;
        if(numbers === NaN){
            result = false;
        }
        if(numbers < 0){
            result = false;
        }
        return result;
    }

    //初始化减按钮功能
    this.initMinuseBtn = function(){
        $("button.minus_btn",that.context).bind("click",function(event){

            //定义一个内部方法用来获取input表单的值
            this.getInputValue = function(){
                //this代表当前减按钮的控件
                return $(this).closest("div.input-group").find("input").val();
            }

            //设置输入的值
            this.setInputValue = function(userValue){
                $(this).closest("div.input-group").find("input").val(userValue)
            }

            //获取加号btn控件
            this.getOtherBtn = function(){
                //this代表当前减按钮的控件
                return $(this).closest("div.input-group").find("button.plus_btn")[0];
            }

            //parent代表groupBtnInit对象
            if(typeof that.setting.beforeMinuseFunc == "function"){
                //this代表控件对象，that代表方法对象
                that.setting.beforeMinuseFunc(this,that);
            }

            var $currentObj = $(this);
            var $inputObj = $currentObj.closest(".input-group").find("input");
            //如果获取的值是小于设置的最小值则不做任何处理
            if($inputObj.val() <= that.setting.minValue){
                return false;
            }
            //检查数据是否正常
            var isCheck = that.checkGoodsNubmer($inputObj.val());
            if(isCheck){
                var currentNumber = parseInt($inputObj.val());
                if(currentNumber >= 1){
                    $inputObj.val( currentNumber - 1);
                }
            }

            //parent代表groupBtnInit对象
            if(typeof that.setting.afterMinuseFunc == "function"){
                //this代表控件对象，that代表方法对象
                that.setting.afterMinuseFunc(this,that);
            }
        });
    }

    //初始化加按钮功能
    this.initPlusBtn = function(){
        $("button.plus_btn",that.context).bind("click",function(){

            //定义一个内部方法用来获取input表单的值
            this.getInputValue = function(){
                return $(this).closest("div.input-group").find("input").val();
            }

            //设置输入的值
            this.setInputValue = function(userValue){
                $(this).closest("div.input-group").find("input").val(userValue)
            }

            //获取减号btn控件
            this.getOtherBtn = function(){
                return $(this).closest("div.input-group").find("button.minus_btn")[0];
            }

            //parent代表groupBtnInit对象
            if(typeof that.setting.beforePlusFunc == "function"){
                //this代表控件对象，that代表方法对象
                that.setting.beforePlusFunc(this,that);
            }

            var $currentObj = $(this);
            var $inputObj = $currentObj.closest(".input-group").find("input");

            //如果获取的值是大于设置的最大值则不做任何处理
            if($inputObj.val() >= that.setting.maxValue){
                return false;
            }

            var isCheck = that.checkGoodsNubmer($inputObj.val());
            if(isCheck==0 || isCheck){
                $inputObj.val(parseInt($inputObj.val()) + 1);
            }
            //parent代表groupBtnInit对象
            if(typeof that.setting.afterPlusFunc == "function"){
                //this代表控件对象，that代表方法对象
                that.setting.afterPlusFunc(this,that);
            }
        });
    }

    //初始化按钮组控件，设置其显示和绑定方法
    this.init = function(){
        //按钮组的宽度
//        that.setGroupWidth(that.setting.groupBtnWidth);
        //设置按钮组的类样式
        that.setGroupBtnClass(that.setting.groupBtnClass);
        //设置按钮组的行内样式
        that.setGroupBtnStyle(that.setting.groupBtnStyle);
        //设置输入框的类样式
        that.setInputClass(that.setting.inputClass);
        //设置加按钮的类样式
        that.setInputStyle(that.setting.inputStyle);
        //设置加按钮的类样式
        that.setPluseBtnClass(that.setting.pluseBtnClass);
        //设置输入框的行内样式
        that.setPluseBtnStyle(that.setting.pluseBtnStyle);
        //设置减按钮的类样式
        that.setMinusBtnClass(that.setting.minusBtnClass);
        //设置减按钮的行内样式
        that.setMinusBtnStyle(that.setting.minusBtnStyle);
        //初始化减按钮功能
        that.initMinuseBtn();
        //初始化加按钮功能
        that.initPlusBtn();
    }

    this.init();

}


//var mysetting = {
//    type:"span",
//    switchSelecter : "#all",
//    exceptSelector: "#ddd"
//    listSelecter : "#list input"
//};
//sqh_all_checked(mysetting);
//    1、要求传递 全选的id  和 被选择的list
//    2、全选控件的回调函数
//    3、被选择的list回调函数
function sqh_all_checked(mySetting){
    //要用that定义变量，缓存起来
    var that = this;

    this.setting = {
        //默认开关控件 和 list 控件全部是checkbox类型，这样不用输入回调函数,如果是其他的，参数应该为other
        type:"checkbox",
        //开关选择器
        switchSelecter : "#checkedall",
        //开关按钮触发的click事件，obj表示是开关控件
        switchClick : function(obj,currentFunObj){
            if(obj.checked == false || obj.checked == undefined){
                //console.log("选中");
                currentFunObj.$list.each(function(i,dom){
                    dom.checked = false;
                });
            }else{
                //console.log("不选中");
                currentFunObj.$list.each(function(i,dom){
                    dom.checked = true;
                });
            }
        },
        //listItem选择器
        listSelecter : "input[name='items']",
        //筛选不要的listSelecter对象
        exceptSelector : "",
        //listItem的click事件，obj表示item控件
        listClick : function(obj,currentFunObj){
            var flag = true;
            currentFunObj.$list.each(function(){
                if(!this.checked)
                    flag = false;
            });
            //document.getElementById(this.switchSelecter.split("#")[1]).checked = flag;
            //jquery选中，兼容性
            currentFunObj.$switch.each(function(i,dom){
                dom.checked = flag;
            });
        }
    };
    //开关控件
    this.$switch = null;
    //被操作的对象
    this.$list = null;

    //参数接收jquery对象
    this.isCheckboxWidget = function(jqueryObj){
        var result = true;
        jqueryObj.each(function(i,dom){
            if("checkbox" != dom.type){
                result = false;
            }
        });
        return result;
    }

    //检查参数
    this.checkSetting = function(){
        //根据传递过来的select判断控件是否存在
        if(that.$switch.size() <= 0 || that.$list.size() <= 0){
            alert("根据传递过来的选择条件找不到控件");
            return false;
        }

        //检查type类型是否是checkbox，如果不是，则需要自定义回调函数，否则报错
        if("checkbox" == that.setting.type){
            if(!that.isCheckboxWidget(that.$switch)){
                alert("全选控件不为checkbox控件");
                return false;
            }
            if(!that.isCheckboxWidget(that.$list)){
                alert("被选控件不为checkbox控件");
                return false;
            }
        }else{
            //判断用户是否自定义方法
            if(mySetting.switchClick == undefined || mySetting.listClick == undefined){
                alert("默认类型不是checkbox，请您自定义回调方法");
                return false;
            }
        }
    }

    //获取目标变量
    this.initTarget = function(){
        //开关控件
        that.$switch = $(this.setting.switchSelecter);
        //被操作的对象
        that.$list = null;
        if(that.setting.exceptSelector == "" || that.setting.exceptSelector == undefined){
            that.$list = $(that.setting.listSelecter);
        }else{
            that.$list = $(that.setting.listSelecter).not(that.setting.exceptSelector);
        }
    }

    //用户自定义函数
    this.userDefinedFunc = function(){
        //开关控件的回调函数
        that.$switch.click(function(){
            //判断用户是否做了回调函数
            //that指向的是sqh_all_checked函数，如果是that则指向的是当前function匿名函数
            if(that.setting.switchClick != undefined){
                that.setting.switchClick(this,that);
            }
        });

        that.$list.each(function(i,dom){
            //被操作控件的回调函数
            $(dom).click(function(){
                //判断配置文件是否做了回调函数
                //that指向的是sqh_all_checked函数，如果是that则指向的是当前function匿名函数
                if(that.setting.listClick != undefined){
                    that.setting.listClick(dom,that);
                }
            });
        });
    }

    //初始化对象,注意里面方法的顺序
    this.init = function(){
        //获取用户的配置文件
        that.setting = $.extend(that.setting , mySetting);
        //获取目标变量
        that.initTarget();
        //检查参数
        that.checkSetting();
        //自定义回调函数
        that.userDefinedFunc();
    }
    this.init();

}

/**
 * 排他选择，即只能选择一个，其余的就不能选中
 */
function oneSelectedPlugin(mySetting){

    var that = this;
    mySetting = mySetting || {};
    this.setting = {
        //选中的目标控件,使用jquery的查找方式
        selector : "",
        //选中状态，判断控件是否被选中的条件,已attr=value的形式，只要查询出来的属性值包含value，则认为是目标控件
//            condition : "class=color_66cc66",
        condition : "class=color_66cc66",
        //选中的回调函数,obj表示当前控件，PluginObj表示控件对象
        selectedFun : function(obj,PluginObj){
        },
        //没有选中的回调函数,obj表示当前控件，PluginObj表示控件对象
        unselectedFun : function(obj,PluginObj){
        },
        //排除部分选项
//            exceptSelector : ".huangbiao"
        exceptSelector : ""
    }

    //获取用户的配置文件
    that.setting = $.extend(that.setting , mySetting);

    this.checkParam = function(){
        var targetWidgetQueryStr = that.setting.selector;
        //检查目标控件字符串
        if(targetWidgetQueryStr == "" || targetWidgetQueryStr == undefined){
            alert("请输入jquery查询字符串");
            return false
        }else{
            if($(targetWidgetQueryStr).length <= 0 ){
                alert("根据您输入的查询条件找不到控件");
                return false;
            }
        }
        return true;
    }

    //判断当前控件是否选中
    this.isSelected = function(obj){
        //标准属性的名字
        var propName = that.setting.condition.split("=")[0];
        //标准属性的值
        var propValue = that.setting.condition.split("=")[1];
        //当前属性的值
        var currentPropValue = $(obj).prop(propName);
        //当前属性的值中有与标准属性的值，则表示存在，返回为真
        if(currentPropValue.indexOf(propValue)>0){
            return true;
        }else{
            return false;
        }
    }

    //让所有目标控件全部不选中
    this.unSelectedAll = function(){
        $(that.setting.selector).each(function(){
            that.setting.unselectedFun(this,that);
        });
    }

    //obj代表当前被点击的控件
    this.targetClick = function(obj){
        if(!that.isSelected(obj)){
            //让所有的控件全部不选中
            that.unSelectedAll();
            //当前控件选中
            that.setting.selectedFun(obj,that);
        }
    }

    //插件初始化
    this.init = function(){

        if(!that.checkParam()){
            return false;
        }

        //判断是否有筛选条件，没有排除的选项
        if(that.setting.exceptSelector == "" || that.setting.exceptSelector == undefined){
            //给被选中的单选控件绑定事件
            $(that.setting.selector).on("click",function(){
                that.targetClick(this);
            });
        }else{
            //有排除的选项
            //给被选中的单选控件绑定事件
            $(that.setting.selector).not(that.setting.exceptSelector).on("click",function(){
                that.targetClick(this);
            });
        }

    }
    this.init();
}


/*****************滑动效果的函数*****************/
/*
 <div class="all_width sqh_overflow_hidden" id="availableDate">
 <div class="inner ">
 <div class="border_b_right_eee float_left margin_bottom_5 margin_top_5" >
 今天<br>
 5月25日
 </div>
 <div class="border_b_right_eee float_left margin_bottom_5 margin_top_5 sqh_font_color_red" >
 今天<br>
 5月26日
 </div>
 <div class="border_b_right_eee float_left margin_bottom_5 margin_top_5" >
 今天<br>
 5月27日
 </div>
 <div class="border_b_right_eee float_left margin_bottom_5 margin_top_5" >
 今天<br>
 5月28日
 </div>
 <div class="border_b_right_eee float_left margin_bottom_5 margin_top_5" >
 今天<br>
 5月29日
 </div>
 <div class="border_b_right_eee float_left margin_bottom_5 margin_top_5" >
 今天<br>
 5月30日
 </div>
 <div >
 今天<br>
 6月1日
 </div>
 </div>

 <div class="sqh_absolute" style="top:0px;left:10px;" id="preBtn">
 <span class="icon iconfont sqh_color_99 sqh_line_height_25" aria-hidden="true">&#xe608;</span>
 </div>
 <div class="sqh_absolute" style="top:0px;right:10px;" id="nextBtn">
 <span class="icon iconfont sqh_color_99 sqh_line_height_25" aria-hidden="true">&#xe611;</span>
 </div>
 </div>

 */
//滑动效果的函数
function initFlipsnap(mysetting){
    var that = this;
    //校验参数的值
    mysetting = mysetting || {};
    this.setting={
        //值为jquery的查询器
        targetObj : "#flipsnap",
        //指定滑动的内容
        targetContent : ".inner",
        //单元格的控件
        targetCell : "div",
        //总共有多少个单元格
        allNumber : 7,
        //一行显示多少个单元格
        pageSize : 3,
        //最大滑动的距离
        maxPoint : 4
    }

    this.setting = $.extend(this.setting , mysetting);

    //获取显示屏的尺寸
    this.getScreenWidth = function(){
        return document.body.clientWidth ;
    }

    //初始化方法
    this.init = function(){
        var screenWidth = that.getScreenWidth();
        var oneDivWidth = (screenWidth / that.setting.pageSize) - 3;
        var innerDivWidth = oneDivWidth * that.setting.allNumber;

        //设置容器的宽度，及单元格的宽度 * 单元格的个数
        var contentObj = $(that.setting.targetContent,$(that.setting.targetObj));
        contentObj.css("width",innerDivWidth);

        //让容器内的所有单元格全部往左浮动
//        $(".inner div").css("width",oneDivWidth).css("float","left");
        $(that.setting.targetCell,contentObj).css("width",oneDivWidth).css("float","left");

        //初始化flisnap控件
        var flipsnap = Flipsnap(that.setting.targetObj +' ' + that.setting.targetContent,{
            //每次滑动的距离
            distance: oneDivWidth,
            //最大滑动的距离
            maxPoint : that.setting.maxPoint
        });

        //绑定结束事件
        flipsnap.element.addEventListener("fstouchend",function(ev){

        });

        $("#nextBtn").bind("click",function(){
            flipsnap.toNext();
        });

        $("#preBtn").bind("click",function(){
            flipsnap.toPrev();
        });
    }

    //给选中的日期添加颜色,还有业务逻辑处理
    $("#availableDate .inner div").bind("click",function(){
        $("#availableDate .inner div[class*='sqh_font_color_red']").removeClass("sqh_font_color_red");
        $(this).addClass("sqh_font_color_red");
    });

    this.init();
}

/**********************解决底部自动导航的问题*******************/
/*
* myclass为底部固定的dom节点
* targetDom 需要计算的目标dom高度，即内容的最大高度
* */
function autoNav(myclass,targetDom){
    //如果没有传递参数，则使用默认的值，否则使用用户自定义的值
    if(myclass == undefined || myclass == ""){
        myclass = ".navbar";
    }
    //获取内容的高度
    if(targetDom == undefined || targetDom == ""){
        targetDom = "body";
    }
    var bodyHeight = $(targetDom).height();
    //获取底部导航的高度
    var navHeight = $(myclass).height();
    //获取显示屏的高度
    var iHeight = document.documentElement.clientHeight||document.body.clientHeight;
    //如果内容的高度大于（窗口的高度 - 导航的高度）,z则需要添加一个div，设置其高度
    if(bodyHeight > (iHeight - navHeight)){
        $(targetDom).append('<div style="height: '+navHeight+'px"></div>');
    }
}

/********************** 根据多个标签 解决底部自动导航的问题*******************/
/*
 * myclass为底部固定的dom节点
 * domArray 数组，多个组件的高度和为页面的内容，如果不填写，则默认为body
 * targetDom 字符串，自动添加的内容是放在指定控件内
 * inOrOut  布尔值，如果为true，表示是添加targetDom内，false表示是添加targetDom外
 * */
function autoNavMoreComponent(myclass,domArray,targetDom){
    //如果没有传递参数，则使用默认的值，否则使用用户自定义的值
    if(myclass == undefined || myclass == ""){
        myclass = ".navbar";
    }

    //如果输入的参数不为数组
    if(!domArray instanceof Array){
        //alert("第二个参数为数组");
        //return false;
        domArray = ["body"];
    }
    //计算多个控件的总高度
    var contentHeight = 0;
    for(var i = 0; i < domArray.length ; i++){
        contentHeight = contentHeight + $(domArray[i]).height();
    }
    //获取底部导航的高度
    var navHeight = $(myclass).height();
    //获取显示屏的高度
    var iHeight = document.documentElement.clientHeight||document.body.clientHeight;
    //如果内容的高度大于（窗口的高度 - 导航的高度）,z则需要添加一个div，设置其高度
    if(contentHeight > (iHeight - navHeight)){
        if(targetDom == undefined || targetDom == ""){
            targetDom = "body";
        }
        $(targetDom).append('<div style="height: '+navHeight+'px"></div>');
    }
}

/******************根据图片的大小，设置图片顶部留白和底部留白部分，以图片实际显示尺寸作为参照物*******************/
function imgPercent(mySetting){

    var that = this;
    if(mySetting == "" || mySetting == undefined || typeof mySetting != "object"){
        mySetting = {};
    }
    //使用时间戳作为空间的ID
    var timeStamp = new Date().getTime();

    this.setting = {
        //将内容填放的位置
        targetContent : "#imgPercent",
        //图片的地址内容
        imgURL : "../img/index_logo.png",
        //img控件的父div的样式设置
        imgContainerClass : "",
        //img控件的样式
        imgClass : "",
        //顶部div的样式
        topClass : "",
        //底部div的样式
        bottomClass : "",
        //顶部留白占图片百分比
        topPercent : 0,
        //底部留白占图片百分比
        bottomPercent : 0,
        //目标的ID值，这个默认是时间戳
        objectId : "",
        //显示之前的回调函数
        beforeShow : function(plugin,id){
        },
        //显示之后的回调函数
        afterShow : function(plugin,id){
        }

    };

    this.setting = $.extend(this.setting, mySetting,{objectId:timeStamp});

    //获取顶部div的HTML代码字符串
    this.getTopDiv = function(){
        var topDivHtml = '<div id="topDiv'+that.setting.objectId+'"></div>';
        //判断配置文件中是否引用了Class样式
        if(that.setting.topClass != "" && that.setting.topClass != undefined && typeof that.setting.topClass == "string"){
            topDivHtml = '<div id="topDiv' + that.setting.objectId + '" class="' + that.setting.topClass + '"></div>';
        }
        return topDivHtml;
    }

    //获取顶部div的HTML代码字符串
    this.getImgDiv = function(){
        var imgDivHtml =  '<div id="imgDiv'+that.setting.objectId+'">';
        var imgHtml = '<img id="imgDiv'+that.setting.objectId+'" class="img-responsive div_center " src="'+that.setting.imgURL+'"/></div>';
        //判断配置文件中是否引用了Class样式
        if(that.setting.imgContainerClass != "" && that.setting.imgContainerClass != undefined && typeof that.setting.imgContainerClass == "string"){
            imgDivHtml = '<div id="imgDiv'+that.setting.objectId+'" class="' + that.setting.imgContainerClass + '">';
//                        '<img class="img-responsive div_center" src="'+that.setting.imgURL+'"/></div>';
        }
        //判断配置文件中是否引用了Class样式
        if(that.setting.imgClass != "" && that.setting.imgClass != undefined && typeof that.setting.imgClass == "string"){
            imgHtml = '<img class="img-responsive div_center '+that.setting.imgClass+'" src="'+that.setting.imgURL+'"/></div>';
        }

        return imgDivHtml + imgHtml ;
    }

    //获取顶部div的HTML代码字符串
    this.getBottomDiv = function(){
        var bottomDivHtml = '<div id="bottomDiv'+that.setting.objectId+'"></div>';
        //判断配置文件中是否引用了Class样式
        if(that.setting.bottomClass != "" && that.setting.bottomClass != undefined && typeof that.setting.bottomClass == "string"){
            bottomDivHtml = '<div id="bottomDiv' + that.setting.objectId + '" class="' + that.setting.bottomClass + '"></div>';
        }
        return bottomDivHtml;
    }

    this.init = function(){
        $(that.setting.targetContent).html(that.getImgDiv());
        //生成最终显示的代码
        var targetHTML = '<div id="'+that.setting.objectId+'">' + that.getTopDiv() + that.getImgDiv() + that.getBottomDiv() + '</div>';
        //执行显示前的回调函数
        if(that.setting.beforeShow != undefined && typeof that.setting.beforeShow == "function"){
            that.setting.beforeShow(that,that.setting.objectId);
        }
        //将代码放到指定的容器中
        $(that.setting.targetContent).html(targetHTML);

        //获取图片的实际高度
        var imgHeight = $("#imgDiv"+that.setting.objectId).find("img").height();
        //获取顶部留白的高度，这个高度是按照图片的比例计算出来的
        var topDivHeight = imgHeight * that.setting.topPercent;
        //获取底部留白的高度，这个高度是按照图片的比例计算出来的
        var bottomDivHeight = imgHeight * that.setting.bottomPercent;

        $("#topDiv"+that.setting.objectId).css("height",topDivHeight);
        $("#bottomDiv"+that.setting.objectId).css("height",bottomDivHeight);
        //执行显示前的回调函数
        if(that.setting.afterShow != undefined && typeof that.setting.afterShow == "function"){
            that.setting.afterShow(that,that.setting.objectId);
        }

    }

    this.resize = function(){
        //获取图片的实际高度
        var imgHeight = $("#imgDiv"+that.setting.objectId).find("img").height();
        //获取顶部留白的高度，这个高度是按照图片的比例计算出来的
        var topDivHeight = imgHeight * that.setting.topPercent;
        //获取底部留白的高度，这个高度是按照图片的比例计算出来的
        var bottomDivHeight = imgHeight * that.setting.bottomPercent;

        $("#topDiv"+that.setting.objectId).css("height",topDivHeight);
        $("#bottomDiv"+that.setting.objectId).css("height",bottomDivHeight);
    }

    this.init();

}

//右侧导航
function navRight(){
//        nav_right
//        nav_switch
//        nav_right_son
    var that = this;
    //上下文
    this.context = $(".nav_right");
    //开关
    this.pluginSwitch = $(".nav_switch",context);
    //子菜单
    this.menu = $(".nav_right_son",context);
    //给开关绑定事件
    that.pluginSwitch.on("click",function(){
        that.menu.slideToggle("slow");
//            that.menu.fadeToggle("slow","linear");
    });
}

/*********************collapse 折叠效果***************************/
/*
 <div class="bg_ff my_collapse">
 <ul class="list-unstyled clear_margin_bottom ">
 <li class="pointer data-item">
 <div class="font_16 height_div_40 padding_left_10 padding_right_10 border_b_bottom_eee data-title" >
 积分能为我带来什么?
 <span class="iconfont icon font_16 float_right">&#xe61d;</span>
 </div>
 <div class="color_99 bg_ff padding_left_10 padding_right_10 padding_top_10 padding_bottom_10 border_b_bottom_eee data-detail" >
 <ul class="list-unstyled clear_margin_bottom line_height_15 ">
 <li>在美团，小小的积分可以为你赢来大大的福利，因为积分：</li>
 <li>1）可以在商城兑换各种超值好礼;</li>
 <li>2）能让你小试手气，赢得大奖;</li>
 <li>3）能够用来秒杀各种商城定期派发的抵用券/li>
 <li>4）在消费时还能抵现金</li>
 <li>小妹温馨提示：在美国，抽奖和商品兑换是最划算的</li>
 </ul>
 </div>
 </li>
 </ul>
 </div>
注意：
div.my_collapse     表示collapse 控件
li.data-item        collapse控件中的一个折叠效果
div.data-title      collapse的标题
div.data-detail     collapse的详细内容

* */

function myCollapse(){
    var that = this;

    this.setting = {
        //collapse控件选择器
        selector : ".my_collapse",
        //变化之前触发
        beforeChange : function(titleObj,pluginObj){
//                alert("beforeChange");
//                alert(titleObj.outerHTML);
//                alert(pluginObj);
        },
        //变化之后触发
        afterChange : function(titleObj,pluginObj){
//                alert("afterChange");
        }
    }

    //隐藏所有的内容
    this.hideAll = function(){
        $(that.setting.selector).find("li.data-item").removeClass("active");
    }

    //隐藏除自身之外的li控件
    this.hideOther = function(obj){
        $(that.setting.selector).find("li.data-item").not($(obj).closest("li")).removeClass("active").find(".icon").html("&#xe61d;");
    }

    //改变icon图标
    //obj为div.data-title控件
    this.changeIcon = function(obj){
        if($(obj).closest("li.data-item").hasClass("active")){
            $(obj).find("span.icon").html("&#xe61d;");
        }else{
            $(obj).find("span.icon").html("&#xe61c;");
        }
    }

    this.bindEvent = function(){
        $(that.setting.selector).find("li.data-item div.data-title").on("click",function(){
            //改变前的回调函数
            that.setting.beforeChange(this,that);

            //this代表的是div.data-title控件
            that.hideOther(this);
            //改变图标
            that.changeIcon(this);
            //显示或者隐藏内容
            $(this).closest("li.data-item").toggleClass("active");

            //改变后的回调函数
            that.setting.afterChange(this,that);
        });
    }

    this.init = function(){

        //给标题绑定事件
        that.bindEvent();
    }

    this.init();
}

/*********************倒计时***************************/
//var mySetting = {
//    //目标容器的ID，这个使用jquery查询的条件
//    targetId:"#countDownTarget",
//    //定时器的总共时长
//    timeCount : 15,
//    tips : "{_time_}秒后自动返回首页"
//}
//
//new countDown(mySetting);
function countDown(userSetting){
    var that = this;
    //如果用户没有传递参数，则使用默认参数
    userSetting = userSetting || {};
    this.setting = {
        //目标容器的ID，这个使用jquery查询的条件
        targetId:"#countDownTarget",
        //定时器的总共时长
        timeCount : 60,
        //默认步长，即每次总共时长减少的值，单位为毫秒
        step : 1000,
        //最小临界值，即到了这个值之后就不再减少了
        minCritical : 0,
        //是否有临界值，false表示没有，true表示有,默认是有临界值的
        hasCritical : true,
        //目标控件中提示内容,{_time_}表示定时器的时间
        tips : "{_time_}"
    };

    //获取用户的配置文件，覆盖默认设置
    this.setting = $.extend(this.setting,userSetting);

    //开始倒计时
    this.startTimeOut = function(){
        setTimeout(that.action,that.setting.step);
    }
    //倒计时采取的动作
    this.action = function(){
        that.setting.timeCount--;
        //执行定时器的动作
        $(that.setting.targetId).html(that.setting.tips.replace("{_time_}",that.setting.timeCount));

        //判断定时器是否需要临界值
        if(that.setting.hasCritical){
            //判断计数器 是否小于 临界值，如果小于，则不在执行
            if(that.setting.timeCount > that.setting.minCritical){
                that.startTimeOut();
            }
        }
        //没有临界值的操作
        else{
            that.startTimeOut();
        }
    }

    //插件初始化的方法
    this.init = function(){
        that.startTimeOut();
    }
    //执行初始化函数
    this.init();

}

function putMyCollection(obj){
    $(obj).toggleClass("");
}





